package io;

import java.io.*;
import java.nio.charset.StandardCharsets;

/**
 * 缓冲输出流写出数据的缓冲区问题
 */
public class BOS_FlushDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("bos.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        String line = "ahahaha";
        byte[] data = line.getBytes(StandardCharsets.UTF_8);
        bos.write(data);
        System.out.println("输出完毕");
        /*
        缓冲流的flush方法用于强制将缓冲区已经缓存的数据一次性写出
        注：该方法实际上实在字节输出流的超类OutputStream上定义的，
        并非只有缓冲输出流有这个方法。但是实际上只有缓冲输出流的该方法
        有实际意义，其他的流实现该方法的目的仅仅是为了在流连接过程中传递
        flush动作给缓冲输出流。
         */
        //酌情使用
        bos.flush();
        //必须使用
        bos.close();
    }
}
